/**
 * 判断连个版本号大于小于或者等于
 * @param v1 - 版本号1
 * @param v2 - 版本号2
 * @returns -
 * 当 v1 大于 v2 时返回 1
 * 当 v1 等于 v2 时返回 0
 * 当 v1 小于 v2 时返回 -1
 */
export function compareVersion(v1: string, v2: string): -1 | 0 | 1 {
  if (v1 === v2) {
    return 0;
  }

  const vs1 = v1.split('.').map((a) => parseInt(a));
  const vs2 = v2.split('.').map((a) => parseInt(a));

  const length = Math.min(vs1.length, vs2.length);
  for (let i = 0; i < length; i++) {
    const s1 = vs1[i] || 0;
    const s2 = vs2[i] || 0;
    if (s1 > s2) {
      return 1;
    } else if (s1 < s2) {
      return -1;
    }
  }
  if (length === vs1.length) {
    return -1;
  } else {
    return 1;
  }
}
